friend 友元类和友元函数
- 能访问私有成员
- 破坏封装性
- 友元关系不可传递
- 友元关系的单向性
- 友元声明的形式及数量不受限制
//声明方式
class CLASS_NAME
{
friend //函数声明
friend //类声明
public:
//...
private:
//...
}
相同class的各个objects互为友元
class complex
{
public:
complex (double r = 0,double i = 0):re(r),ri(i){}
//相同class的各个objects互为友元
int func(const complex& param){return param.re + param.ri;}
private:
double re,im;
}